perm filename AUTDED[ESS,JMC] blob sn#182417 filedate 1975-10-19 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00003 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	
C00009 00003	.BIB
C00014 ENDMK
C⊗;

John--this is an update of what I wrote in the ARPA proposal; it was slanted 
towards Program Verification. 
I would want to say more about special purpose proof procedures
for different kinds of domains of reasoning, building strategy
selection into representation of facts in the domains.
There are also questions of reasoning in inconsistent models of
domains, minimal changes in plans that dont quite work at runtime,
and many other things on Pattes blackboard.


.sss Details of the Theorem-prover

.cb Features
1.  Input-output is in natural mathematical notation.

2.  Based on resolution and other inference rules.

3.  Contains many search and goal reduction strategies.

4.  Has a user interface language for describing strategies
and guiding proof searches. [4]

5. Has an proof analysis method for extracting answers to
questions from proofs. This is intended for question-answering
applications.

.cb Achievements

1.   Proofs  of many  research results  (announced  without proof  in
Notices  Amer. Math. Soc.)  were obtained  over the last  five years.
These include announced theorems  in such topics as Boolean  Algebra,
Lattice Theory,  Group Theory  and Geometry.   In some  cases we were
able to mail the machine proofs to the authors before the authors had
written up  their own  proofs, and  in other  cases modifications  or
extensions of  the results were  found. The total  number of theorems
and subsidiary lemmas involved is on the order of fifty; the
main references are [5,6] and a forthcoming report.

2.  Verification of complex sorting programs from first principles [5].

3. Has recently been used by Stan Tarnlund to write about 10 programs
(include tree searching and sorting algorithms)
according to Kowalski's theory of the use of Predicate Calculus as a 
programming language.


General Status of Theorem Proving Field.

Very strong theorem proving programs now exist at Argonne Labs. (assembly
language coded for IBM 370 series; very fast on complicated Algebra examples,
has found a few 100-Resolution-step proofs in 1 minute cpu time; not very
flexible in changing sets of stategies nor for interactive use.),
 Austin, Texas (highly interactive,
applicable to checking of proofs in Topology and Real variable Theory),
and Stanford A.I.Lab (features above). 
These programs represent very good progress towards the automation of 
basic first order reasoning. Emphasis seems now to be needed on various
forms of the representation problem: representation of the problem to be
solved, of likely methods of solution (both likely and method or strategy)
and analogy (e.g analogous problem and solution).
Interactive use of these programs has been shown (Stanford and Texas) to
be the most promising direction towards useful applications, and here the 
problem of design of descriptive languages for incomplete reasoning (to be
filled in automatically)  must be tackled.

.cb Proposals

1.  Implementation of new proof rules and strategies  (start Jan.1975).
Many special purpose proof search methods can be programmed in terms of
restricted resolution search strategies. So such extensions are not difficult
to do.
The objective here is to speed up the prover on specific problem domains
that arise in areas of mathematics, everyday discourse, and
program verification.  This will involve testing the prover
on many of the experimental goals of the verification system (September 1976).

2.  Interface with the Verifier.
The present interface is rudimentary.  We want to use the prover as a subsystem
of the verifier, and have the ability to switch back and forth between the
two with data and problems.  This requires a more sophisticated interface. (June
1976).

3. HUNCH language.
Future usability and applications of the theorem prover depend heavily on
the strategy language.  The present language is a nucleus which must be
extended into a facility which enables the user to program outlines of proofs
(i.e. a proof search programming language).  The nature of such languages
is largely unexplored and we expect this to be the most important development
for the prover.

.BIB
⊗  N. Suzuki, "Verifying Programs by Algebraic and Logical Reduction",
AIM-255, December 1974; (accepted for the 1975 <International Conference
on Reliable Software>, Los Angeles April 22-24, 1975).

⊗  F.W.v. Henke and D.C. Luckham, "A Methodology for Verifying Programs",
A.I.Memo forthcoming; (accepted for the 1975 <International Conference
on Reliable Software>, Los Angeles, April 22-24, 1975).

⊗  N. Suzuki, "Short Users Manual for the Stanford Pascal Program Verifier",
Stanford A. I. Lab. Operating Note (forthcoming); diskfile: VCG.MAN [MAN,SUZ]
@SAIL.

⊗  J.R. Allen, "Preliminary  Users   Manual   for   an   Interative
Theorem-Prover",  Stanford   Artificial   Intelligence   Laboratory
Operating Note SAILON-73.

⊗  Jorge J. Morales,  "Interactive Theorem Proving", <Proc. ACM National
Conference>,  August 1973,  pp.441; also "Report on the 
Verification of Sorting Programs", (forthcoming), available as SORTED.EX
[1,JJM] at SAIL.

⊗  John  Allen  and  David Luckham,   "An  Interactive  Theorem-proving
Program", <Proc.   Fifth International  Machine Intelligence
Workshop>, Edinburgh University Press, Edinburgh, 1970.

⊗  S. Igarashi, R. London,   D. Luckham, "Automatic   Program
Verification  I,  Logical  Basis  and  Its Implementation",
AIM-200, May 1970; to appear in <Acta Informatica>.

⊗  David  Luckham  and  Jack  Buchanan,  "Automatic Generation of
Programs  Containing Conditional Statements", <Proc.
A.I.S.B. Summer Conference,> Sussex, England, July 1974, pp.102-126.

⊗  Jack Buchanan and David Luckham, "On Automating the Construction of Programs",
AIM-236, May 1974; (submitted to the <JACM>).

⊗  J.R. Buchanan, "A Study in Automatic Programming", <Ph.D. Thesis>, AIM-245,
July 1974.

⊗  Per Brinch Hansen, "The Purpose of Concurrent Pascal", invited paper,
 <International Conference on Reliable Software>, Los Angeles, April 22-24, 1975).

⊗  R. Balzer, T.E. Cheatham, S. Crocker, "Design of a National Software Works",
report ISI-RR-73-16.

⊗  C.A.R. Hoare, "Proof of a program: FIND", Comm. ACM 14, Jan. 1971, pp.39-45.

⊗  R.W. Floyd, "Algorithm 245 TREESORT3", Comm.ACM. 13, June 1970, pp.371-373.

⊗ D. Knuth, "The Art of Computer Programming Vol.3- Sorting and Searching",
Addison-Wesley, Reading, Mass. 1973.

⊗  V. Pratt, "Shell Sort and Sorting Networks", Ph.D. Thesis, Stanford Un. 
Feb. 1972.

⊗  C.A.R. Hoare, "A Structural Approach to Protection", Computer Science
Dept., Queen's University of Belfast, Draft Jan. 1975.

⊗  W.A. Wulf, "ALPHARD: Toward a Language to Support Structured Programs",
Carnegie Mellon University, Report April 1974.

.end